import numpy as nm


# 这里输入的是weights矩阵，item_num * item_num的矩阵
# 函数的工作是把矩阵上对角线的元素都改成1
# 也就是横纵坐标相同的元素值改成1
# 输出存在新的矩阵里，叫reset_weights
def reset_weight(weights):
    reset_weights = weights.copy()
    # 对角线改1
    nm.fill_diagonal(reset_weights, 1)
    return reset_weights


# 进行列表的转置，从“项目-用户”换成“用户-项目”
def result_append(locate):
    result = []
    for item_id in range(len(locate)):
        for user_id in range(len(locate[item_id])):
            data = [user_id, item_id, locate[item_id][user_id]]
            data_locate = locate[item_id][user_id]
            temp_data = list(data)
            result.append(temp_data)
    return result
